package com.edais.service;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.edais.domain.ThirdPlatformBank;
import com.edais.domain.ThirdProductRoute;
import com.yunzhi.domain.ResultDTO;

@Service
public interface ThirdProductRouteService {
	/**
	 * @param map
	 *            bankCode productCode
	 * @return
	 */
	List<ThirdProductRoute> getThirdProductRoutes(Map<String, String> paramMap);

	Map<String, String> quickWithDraw(Map<String, Object> withDrawApply, String thirdProductCode, String thirdBankCode, String extractPlatform, String thirdPlatformCode,String bankName) throws Exception;
	
	List<ThirdProductRoute> getThirdProductRoutes(String bankName, String productCode);
	
	ThirdPlatformBank getThirdPlatFormBank(String bankName, String thirdPlatformCode);
	
	Map<String,String> queryResult(Map<String, Object> queryResultMap) throws Exception;
	
	Map<String,String> singlePay(Map<String, Object> singlePayMap, String thirdProductCode) throws Exception;
	
	Map<String,Object> cardBinQuery(Map<String,Object> cardBinQueryMap,String thirdProductCode) throws Exception;
	
	Map<String,Object> saveOrderInfoAndCard(Map<String,String> requestMap) throws Exception;
	
	Map<String,Object> singlePayNotify(Map<String, Object> requestMap) throws Exception;
	
	Map<String,Object> saveCardInfo(Map<String,String> requestMap) throws Exception;
	
	Map<String,Object> saveOrderInfo(Map<String,String> requestMap) throws Exception;
	
	Map<String,String> apiPrePayment(Map<String, Object> singlePayMap, String thirdProductCode) throws Exception;
	
	Map<String,String> apiCheckPayment(Map<String, Object> singlePayMap, String thirdProductCode) throws Exception;
	
	ResultDTO<Map<String,Object>> saveApiOrderInfo(Map<String,String> requestMap) throws Exception;
	
	ResultDTO<Map<String,Object>> apiCheckCode(Map<String,String> requestMap) throws Exception ;
	
	ResultDTO<Map<String,Object>> singlePayNotifyNew(Map<String, Object> requestMap) throws Exception;
	
	ResultDTO<Map<String,String>> queryRouteBankList(Map<String, Object> requestMap) throws Exception;
	
	ResultDTO saveCardPhoneNumber(Map<String,String> requestMap) throws Exception; 
}